This invention relates generally to event counting techniques, and, more specifically, to the application of such techniques to semiconductor memory systems, particularly to non-volatile flash electrically-erasable and programmable read-only memories (EEPROMs).
Flash EEPROM systems are being used in a wide variety of applications, particularly when packaged in an enclosed card that is removably connected with a host system. Current commercial memory card formats include that of the Personal Computer Memory Card International Association (PCMCIA), CompactFlash (CF), MultiMediaCard (MMC) and Secure Digital (SD). One supplier of these cards is SanDisk Corporation, assignee of this application. Host systems with which such cards are used include personal computers, notebook computers, hand held computing devices, cameras, audio reproducing devices, and the like. Flash EEPROM systems are also utilized as bulk mass storage embedded in host systems.
Such non-volatile memory systems include an array of memory cells, peripheral operating circuits and a system controller. The controller manages communication with the host system and operation of the memory cell array to store and retrieve user data. The memory cells are grouped together into blocks of cells, a block of cells being the smallest grouping of cells that are simultaneously erasable. Prior to writing data into one or more blocks of cells, those blocks of cells are erased. User data are typically transferred between the host and memory array in sectors. A sector of user data can be any amount that is convenient to handle, preferably less than or equal to the capacity of the memory block, often being equal to the standard disk drive sector size, which is 512 bytes.
In one commercial architecture, the memory system block is sized to store one sector of user data plus overhead data, the overhead data including information such as an error correction code (ECC) for the user data stored in the block, a count of the number of times that the block has been erased and reprogrammed, defects and other physical information of the memory cell block, and programming and/or erase voltages to be applied to the block. Various implementations of this type of non-volatile memory system are described in the following United States patents and pending applications, each of which is incorporated herein in its entirety by this reference: U.S. Pat. Nos. 5,172,338, 5,602,987, 5,315,541, 5,200,959, 5,270,979, 5,428,621, 5,663,901, 5,532,962, 5,430,859 and 5,712,180, and patent applications Ser. No. 08/910,947, filed Aug. 7, 1997, and Ser. No. 09/343,328, filed Jun. 30, 1999. In another commercial architecture, the overhead data for a large number of blocks storing user data are stored together within tables in other blocks. This overhead data includes a count of the number of times that individual user data blocks have been erased and reprogrammed. An example of such a system is described in U.S. patent application Ser. No. 09/505,555, filed Feb. 17, 2000. Yet another type of non-volatile memory system utilizes a larger memory cell block size that stores multiple sectors of user data.
The number of erase/reprogramming cycles experienced by individual memory blocks (their “experience count”) is often maintained within a flash memory system for one or more reasons. One reason is to determine when a block is reaching its end of lifetime, in order to replace it with another block by mapping it out of the system before it fails from overuse. This is described in U.S. Pat. No. 5,043,940, for example, which patent is incorporated herein by this reference. Current commercial floating gate memory cells have a lifetime of from several hundred thousand to one million erase/reprogramming cycles, which is often larger than any of the blocks are cycled in most applications during the useful life of the memory. However, other more reprogramming intensive applications can reach such numbers. Another reason for keeping track of the block experience counts is to be able to alter the mapping of data into the various blocks in order to even out their wear before they reach their ends of lifetime as a way of extending the life of the memory system. Examples of such wear leveling techniques are given in U.S. Pat. No. 6,081,447, which patent is incorporated herein in its entirety by this reference. Yet another reason for maintaining block experience counts is to be able to adjust programming and other operating voltages to take into account changes in characteristics of the memory cells that occur as the number of erase/reprogramming cycles increases.